package controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import pojo.User;
import service.UserService;
import utils.Page;

import java.util.List;


@Controller
@RequestMapping("/user")

public class UserController {
    @Autowired
    private UserService userService;
@RequestMapping("/login")
    public String login(User user){
         boolean flag = userService.login(user);
         if (flag){
             return "index";
         }else {
             return "login";
         }


}
    @RequestMapping("/list/{currentPage}")
    public String findAll(User user, @PathVariable("currentPage") int currentPage, Model model  ){
        Page page = new Page();
        page.setCurrentPage(currentPage);
        int totalCount = userService.count(user);
        page.setTotalCount(totalCount);
        page.setTotalPage();
        int offset = (currentPage-1)*page.getPageSize();
    List<User> users = userService.findAll(user, offset,page.getPageSize());
        model.addAttribute("users",users);
        model.addAttribute("page",page);
        model.addAttribute("user",user);

        return "user/list";
    }
    @RequestMapping("/toadd")
    public String toAdd(){
        return "user/add";
    }
    @RequestMapping("/addSave")
    public String addUser(User user){
      int result =  userService.addUser(user);
      if (result>0){
          return "redirect:/user/list";
      }else{
          return "error";
      }

    }

    @RequestMapping("/delete/{id}")
    public String deleteUser(@PathVariable("id") int id){

     int result = userService.deleteUser(id);
     if (result>0){
         return "redirect:/user/list";
     }
     else{
         return "error";
     }

    }

    @RequestMapping("/updateSave")
    public String updateUser(User user){
     int result = userService.updateUser(user);
     if (result>0){
         return "redirect:/user/list";
     }
     else{
         return "error";
     }

    }

    @RequestMapping("/toupdate/{id}")
    public String toupdate(@PathVariable("id") int id, Model model){
    User user = userService.findUserById(id);
    model.addAttribute("user",user);
    return "user/update";

    }
}
